<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 网络请求:aaa  ->自己处理10行
        // 处理：aaa111  ->自己处理10行
        // 处理：aaa111222  ->自己处理10行

        // 1.
        // new Promise((resolve,reject) =>{
        //     setTimeout(() =>{
        //        resolve('aaa')
        //     },1000)
        // }).then(res =>{
        //     //1.自己处理10行代码 
        //     console.log(res,"第一层的10行代码");
        //     // 2.对结果进行一次处理
        //     return new Promise((resolve,reject) =>{
        //         // resolve(res + "111")
        //         reject('err')
        //     })
        // }).then(res =>{
        //     console.log(res,"第二层的10行代码处理")

        //     return new Promise(resolve =>{
        //         resolve(res + "222")
        //     })
        // }).then(res =>{
        //     console.log(res,"第三层的10行代码处理")
        // }).catch(err =>{
        //     console.log(err);
        // })


        // 2.new Promise(resolve =>resolve(结果))简写

        // new Promise((resolve,reject) =>{
        //     setTimeout(() =>{
        //        resolve('aaa')
        //     },1000)
        // }).then(res =>{
        //     //1.自己处理10行代码 
        //     console.log(res,"第一层的10行代码");
        //     // 2.对结果进行一次处理
        //     return Promise.resolve(res+"111")
        // }).then(res =>{
        //     console.log(res,"第二层的10行代码处理")
        //     return Promise.resolve(res+"222")
        // }).then(res =>{
        //     console.log(res,"第三层的10行代码处理")
        // })

        new Promise((resolve,reject) =>{
            setTimeout(() =>{
               resolve('aaa')
            },1000)
        }).then(res =>{
            //1.自己处理10行代码 
            console.log(res,"第一层的10行代码");
            // 2.对结果进行一次处理
            // return Promise.reject("error message")
            throw "error message"
        }).then(res =>{
            console.log(res,"第二层的10行代码处理")
            return Promise.resolve(res+"222")
        }).then(res =>{
            console.log(res,"第三层的10行代码处理")
        }).catch(err =>{
            console.log(err)
        })


        // 3.省略掉Promise.resolve
        // new Promise((resolve,reject) =>{
        //     setTimeout(() =>{
        //        resolve('aaa')
        //     },1000)
        // }).then(res =>{
        //     //1.自己处理10行代码 
        //     console.log(res,"第一层的10行代码");
        //     // 2.对结果进行一次处理
        //     return res+"111"
        // }).then(res =>{
        //     console.log(res,"第二层的10行代码处理")
        //     return res+"222"
        // }).then(res =>{
        //     console.log(res,"第三层的10行代码处理")
        // })

     

    </script>
</body>
</html>